Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Series 7 FPGA Overhaul #94

Open
wants to merge 11 commits into
base: master
Choose a base branch
from

Conversation

guyfleeman
Copy link
Contributor

@guyfleeman guyfleeman commented Feb 2, 2020

We'll be using SystemVerilog for code, testbenches, and any formal we do.

Install

The toolchain is Xilinx Vivado 2019.2 WebPack edition. You can install for Linux or Windows. You will need an account to download the software. If you are a citizen of Cuba, Iran, North Korea, Sudan or Syria, please talk to me.

After install the base IDE, please install the patch to take you 2019.2.1.

Run the installer as root/admin and login with your account.

  • when asked choose to install Vivado Design Suite (not Vitis, Lab Edition, etc...)
  • when asked choose the "WebPack Edition" (the others cost money)
  • uncheck the UltraScale, UltraScale+, and Zynq UltraScale(+) families
  • leave Zynq 7000 and 7-series families enabled

Design Elements

Double Buffer

Allow non-sync updates to the primary buffer, then in a single cycle copy the primary buffer to the secondary

Register Files

Basically the FPGA should appear as a spi device, and we should formalize a register access scheme. Perhaps on byte [R/!W, Control/!Config, Addr]. This would let us have 64,Nbit register for each type. A read and write would each be 5 transactions (control byte, 4 data bytes).

Assignments

Will:

  • ff sync
  • async fifio
  • spi slave
  • fixed point div
  • fixed point tc

Arthur:

  • fifo - recommended starting design
  • spi master
  • fixed point add
  • fixed point sub
  • fixed point mul

Arvind:

  • double buffer

Up-for-grabs:

  • refactors and improve old modules
  • contol register file
  • parameter register file (infer bram)
  • parameter register file access scheduling

Also:

  • ADC
  • IMU
  • ClkDivider
  • Fixed point cos/sin (v. hard)
  • Matrix stuff/operations (hard)

@guyfleeman
Copy link
Contributor Author

@arthursiqueira14 I've assigned you some FPGA stuff

@guyfleeman
Copy link
Contributor Author

see issue #54 for context

@guyfleeman
Copy link
Contributor Author

I'm trying to have the AsyncFifo up soon with a tb so yall have a ref

@guyfleeman
Copy link
Contributor Author

@arthursiqueira14 something is wrong with the .gitignore I think

@guyfleeman
Copy link
Contributor Author

guyfleeman commented Feb 10, 2020

def wanna ignore .jobs, .runs, *.pb and *.jou files. Can you add those to the xilinx .gitignore and remove the affected files from the PR? Might require a force push. I won't add anything until you resolve so no need to be worried about accidentally removing anything.

@arthursiqueira14
Copy link

How do I do that? On Vivado?

@guyfleeman
Copy link
Contributor Author

Follow this guide, after you unstage the files. Amend the .gitignore file so it doesn't suggest adding them back

@guyfleeman
Copy link
Contributor Author

Thanks. Sorry for the growing pains :/

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants